home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / perl5 / 5.8.7 / pod / perl.pod < prev    next >
Text File  |  2006-04-25  |  14KB  |  437 lines

  1. =head1 NAME
  2.  
  3. perl - Practical Extraction and Report Language
  4.  
  5. =head1 SYNOPSIS
  6.  
  7. B<perl>    S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
  8.     S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]>
  9.     S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]>
  10.     S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ]>
  11.     S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<dir>] ]>
  12.     S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 
  13.     [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
  14.  
  15. If you're new to Perl, you should start with L<perlintro>, which is a 
  16. general intro for beginners and provides some background to help you
  17. navigate the rest of Perl's extensive documentation.
  18.  
  19. For ease of access, the Perl manual has been split up into several sections.
  20.  
  21. =head2 Overview
  22.  
  23.     perl        Perl overview (this section)
  24.     perlintro        Perl introduction for beginners
  25.     perltoc        Perl documentation table of contents
  26.  
  27. =head2 Tutorials
  28.  
  29.     perlreftut        Perl references short introduction
  30.     perldsc        Perl data structures intro
  31.     perllol        Perl data structures: arrays of arrays
  32.  
  33.     perlrequick     Perl regular expressions quick start
  34.     perlretut        Perl regular expressions tutorial
  35.  
  36.     perlboot        Perl OO tutorial for beginners
  37.     perltoot        Perl OO tutorial, part 1
  38.     perltooc        Perl OO tutorial, part 2
  39.     perlbot        Perl OO tricks and examples
  40.  
  41.     perlstyle        Perl style guide
  42.  
  43.     perlcheat        Perl cheat sheet
  44.     perltrap        Perl traps for the unwary
  45.     perldebtut        Perl debugging tutorial
  46.  
  47.     perlfaq        Perl frequently asked questions
  48.       perlfaq1        General Questions About Perl
  49.       perlfaq2        Obtaining and Learning about Perl
  50.       perlfaq3        Programming Tools
  51.       perlfaq4        Data Manipulation
  52.       perlfaq5        Files and Formats
  53.       perlfaq6        Regexes
  54.       perlfaq7        Perl Language Issues
  55.       perlfaq8        System Interaction
  56.       perlfaq9        Networking
  57.  
  58. =head2 Reference Manual
  59.  
  60.     perlsyn        Perl syntax
  61.     perldata        Perl data structures
  62.     perlop        Perl operators and precedence
  63.     perlsub        Perl subroutines
  64.     perlfunc        Perl built-in functions
  65.       perlopentut    Perl open() tutorial
  66.       perlpacktut    Perl pack() and unpack() tutorial
  67.     perlpod        Perl plain old documentation
  68.     perlpodspec     Perl plain old documentation format specification
  69.     perlrun        Perl execution and options
  70.     perldiag        Perl diagnostic messages
  71.     perllexwarn     Perl warnings and their control
  72.     perldebug        Perl debugging
  73.     perlvar        Perl predefined variables
  74.     perlre        Perl regular expressions, the rest of the story
  75.     perlreref        Perl regular expressions quick reference
  76.     perlref        Perl references, the rest of the story
  77.     perlform        Perl formats
  78.     perlobj        Perl objects
  79.     perltie        Perl objects hidden behind simple variables
  80.       perldbmfilter    Perl DBM filters
  81.  
  82.     perlipc        Perl interprocess communication
  83.     perlfork        Perl fork() information
  84.     perlnumber        Perl number semantics
  85.  
  86.     perlthrtut        Perl threads tutorial
  87.       perlothrtut    Old Perl threads tutorial
  88.  
  89.     perlport        Perl portability guide
  90.     perllocale        Perl locale support
  91.     perluniintro    Perl Unicode introduction
  92.     perlunicode     Perl Unicode support
  93.     perlebcdic        Considerations for running Perl on EBCDIC platforms
  94.  
  95.     perlsec        Perl security
  96.  
  97.     perlmod        Perl modules: how they work
  98.     perlmodlib        Perl modules: how to write and use
  99.     perlmodstyle    Perl modules: how to write modules with style
  100.     perlmodinstall    Perl modules: how to install from CPAN
  101.     perlnewmod        Perl modules: preparing a new module for distribution
  102.  
  103.     perlutil        utilities packaged with the Perl distribution
  104.  
  105.     perlcompile     Perl compiler suite intro
  106.  
  107.     perlfilter        Perl source filters
  108.  
  109. =head2 Internals and C Language Interface
  110.  
  111.     perlembed        Perl ways to embed perl in your C or C++ application
  112.     perldebguts     Perl debugging guts and tips
  113.     perlxstut        Perl XS tutorial
  114.     perlxs        Perl XS application programming interface
  115.     perlclib        Internal replacements for standard C library functions
  116.     perlguts        Perl internal functions for those doing extensions
  117.     perlcall        Perl calling conventions from C
  118.  
  119.     perlapi        Perl API listing (autogenerated)
  120.     perlintern        Perl internal functions (autogenerated)
  121.     perliol        C API for Perl's implementation of IO in Layers
  122.     perlapio        Perl internal IO abstraction interface
  123.  
  124.     perlhack        Perl hackers guide
  125.  
  126. =head2 Miscellaneous
  127.  
  128.     perlbook        Perl book information
  129.     perltodo        Perl things to do
  130.  
  131.     perldoc        Look up Perl documentation in Pod format
  132.  
  133.     perlhist        Perl history records
  134.     perldelta        Perl changes since previous version
  135.     perl586delta    Perl changes in version 5.8.6
  136.     perl585delta    Perl changes in version 5.8.5
  137.     perl584delta    Perl changes in version 5.8.4
  138.     perl583delta    Perl changes in version 5.8.3
  139.     perl582delta    Perl changes in version 5.8.2
  140.     perl581delta    Perl changes in version 5.8.1
  141.     perl58delta     Perl changes in version 5.8.0
  142.     perl573delta    Perl changes in version 5.7.3
  143.     perl572delta    Perl changes in version 5.7.2
  144.     perl571delta    Perl changes in version 5.7.1
  145.     perl570delta    Perl changes in version 5.7.0
  146.     perl561delta    Perl changes in version 5.6.1
  147.     perl56delta     Perl changes in version 5.6
  148.     perl5005delta    Perl changes in version 5.005
  149.     perl5004delta    Perl changes in version 5.004
  150.  
  151.     perlartistic    Perl Artistic License
  152.     perlgpl        GNU General Public License
  153.  
  154. =head2 Language-Specific
  155.  
  156.     perlcn        Perl for Simplified Chinese (in EUC-CN)
  157.     perljp        Perl for Japanese (in EUC-JP)
  158.     perlko        Perl for Korean (in EUC-KR)
  159.     perltw        Perl for Traditional Chinese (in Big5)
  160.  
  161. =head2 Platform-Specific
  162.  
  163.     perlaix        Perl notes for AIX
  164.     perlamiga        Perl notes for AmigaOS
  165.     perlapollo        Perl notes for Apollo DomainOS
  166.     perlbeos        Perl notes for BeOS
  167.     perlbs2000        Perl notes for POSIX-BC BS2000
  168.     perlce        Perl notes for WinCE
  169.     perlcygwin        Perl notes for Cygwin
  170.     perldgux        Perl notes for DG/UX
  171.     perldos        Perl notes for DOS
  172.     perlepoc        Perl notes for EPOC
  173.     perlfreebsd     Perl notes for FreeBSD
  174.     perlhpux        Perl notes for HP-UX
  175.     perlhurd        Perl notes for Hurd
  176.     perlirix        Perl notes for Irix
  177.     perlmachten     Perl notes for Power MachTen
  178.     perlmacos        Perl notes for Mac OS (Classic)
  179.     perlmacosx        Perl notes for Mac OS X
  180.     perlmint        Perl notes for MiNT
  181.     perlmpeix        Perl notes for MPE/iX
  182.     perlnetware     Perl notes for NetWare
  183.     perlopenbsd     Perl notes for OpenBSD
  184.     perlos2        Perl notes for OS/2
  185.     perlos390        Perl notes for OS/390
  186.     perlos400        Perl notes for OS/400
  187.     perlplan9        Perl notes for Plan 9
  188.     perlqnx        Perl notes for QNX
  189.     perlsolaris     Perl notes for Solaris
  190.     perltru64        Perl notes for Tru64
  191.     perluts        Perl notes for UTS
  192.     perlvmesa        Perl notes for VM/ESA
  193.     perlvms        Perl notes for VMS
  194.     perlvos        Perl notes for Stratus VOS
  195.     perlwin32        Perl notes for Windows
  196.  
  197.  
  198. By default, the manpages listed above are installed in the 
  199. F</usr/local/man/> directory.  
  200.  
  201. Extensive additional documentation for Perl modules is available.  The
  202. default configuration for perl will place this additional documentation
  203. in the F</usr/local/lib/perl5/man> directory (or else in the F<man>
  204. subdirectory of the Perl library directory).  Some of this additional
  205. documentation is distributed standard with Perl, but you'll also find
  206. documentation for third-party modules there.
  207.  
  208. You should be able to view Perl's documentation with your man(1)
  209. program by including the proper directories in the appropriate start-up
  210. files, or in the MANPATH environment variable.  To find out where the
  211. configuration has installed the manpages, type:
  212.  
  213.     perl -V:man.dir
  214.  
  215. If the directories have a common stem, such as F</usr/local/man/man1>
  216. and F</usr/local/man/man3>, you need only to add that stem
  217. (F</usr/local/man>) to your man(1) configuration files or your MANPATH
  218. environment variable.  If they do not share a stem, you'll have to add
  219. both stems.
  220.  
  221. If that doesn't work for some reason, you can still use the
  222. supplied F<perldoc> script to view module information.  You might
  223. also look into getting a replacement man program.
  224.  
  225. If something strange has gone wrong with your program and you're not
  226. sure where you should look for help, try the B<-w> switch first.  It
  227. will often point out exactly where the trouble is.
  228.  
  229. =head1 DESCRIPTION
  230.  
  231. Perl is a language optimized for scanning arbitrary
  232. text files, extracting information from those text files, and printing
  233. reports based on that information.  It's also a good language for many
  234. system management tasks.  The language is intended to be practical
  235. (easy to use, efficient, complete) rather than beautiful (tiny,
  236. elegant, minimal).
  237.  
  238. Perl combines (in the author's opinion, anyway) some of the best
  239. features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
  240. those languages should have little difficulty with it.  (Language
  241. historians will also note some vestiges of B<csh>, Pascal, and even
  242. BASIC-PLUS.)  Expression syntax corresponds closely to C
  243. expression syntax.  Unlike most Unix utilities, Perl does not
  244. arbitrarily limit the size of your data--if you've got the memory,
  245. Perl can slurp in your whole file as a single string.  Recursion is of
  246. unlimited depth.  And the tables used by hashes (sometimes called
  247. "associative arrays") grow as necessary to prevent degraded
  248. performance.  Perl can use sophisticated pattern matching techniques to
  249. scan large amounts of data quickly.  Although optimized for
  250. scanning text, Perl can also deal with binary data, and can make dbm
  251. files look like hashes.  Setuid Perl scripts are safer than C programs
  252. through a dataflow tracing mechanism that prevents many stupid
  253. security holes.
  254.  
  255. If you have a problem that would ordinarily use B<sed> or B<awk> or
  256. B<sh>, but it exceeds their capabilities or must run a little faster,
  257. and you don't want to write the silly thing in C, then Perl may be for
  258. you.  There are also translators to turn your B<sed> and B<awk>
  259. scripts into Perl scripts.
  260.  
  261. But wait, there's more...
  262.  
  263. Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
  264. rewrite that provides the following additional benefits:
  265.  
  266. =over 4
  267.  
  268. =item *
  269.  
  270. modularity and reusability using innumerable modules 
  271.  
  272. Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
  273.  
  274. =item *
  275.  
  276. embeddable and extensible 
  277.  
  278. Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>,
  279. L<perlguts>, and L<xsubpp>.
  280.  
  281. =item *
  282.  
  283. roll-your-own magic variables (including multiple simultaneous DBM
  284. implementations)
  285.  
  286. Described in L<perltie> and L<AnyDBM_File>.
  287.  
  288. =item *
  289.  
  290. subroutines can now be overridden, autoloaded, and prototyped
  291.  
  292. Described in L<perlsub>.
  293.  
  294. =item *
  295.  
  296. arbitrarily nested data structures and anonymous functions
  297.  
  298. Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
  299.  
  300. =item *
  301.  
  302. object-oriented programming
  303.  
  304. Described in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>,
  305. and L<perlbot>.
  306.  
  307. =item *
  308.  
  309. support for light-weight processes (threads)
  310.  
  311. Described in L<perlthrtut> and L<threads>.
  312.  
  313. =item *
  314.  
  315. support for Unicode, internationalization, and localization
  316.  
  317. Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
  318.  
  319. =item *
  320.  
  321. lexical scoping
  322.  
  323. Described in L<perlsub>.
  324.  
  325. =item *
  326.  
  327. regular expression enhancements
  328.  
  329. Described in L<perlre>, with additional examples in L<perlop>.
  330.  
  331. =item *
  332.  
  333. enhanced debugger and interactive Perl environment,
  334. with integrated editor support
  335.  
  336. Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
  337.  
  338. =item *
  339.  
  340. POSIX 1003.1 compliant library
  341.  
  342. Described in L<POSIX>.
  343.  
  344. =back
  345.  
  346. Okay, that's I<definitely> enough hype.
  347.  
  348. =head1 AVAILABILITY
  349.  
  350. Perl is available for most operating systems, including virtually
  351. all Unix-like platforms.  See L<perlport/"Supported Platforms">
  352. for a listing.
  353.  
  354. =head1 ENVIRONMENT
  355.  
  356. See L<perlrun>.
  357.  
  358. =head1 AUTHOR
  359.  
  360. Larry Wall <larry@wall.org>, with the help of oodles of other folks.
  361.  
  362. If your Perl success stories and testimonials may be of help to others 
  363. who wish to advocate the use of Perl in their applications, 
  364. or if you wish to simply express your gratitude to Larry and the 
  365. Perl developers, please write to perl-thanks@perl.org .
  366.  
  367. =head1 FILES
  368.  
  369.  "@INC"            locations of perl libraries
  370.  
  371. =head1 SEE ALSO
  372.  
  373.  a2p    awk to perl translator
  374.  s2p    sed to perl translator
  375.  
  376.  http://www.perl.org/       the Perl homepage
  377.  http://www.perl.com/       Perl articles (O'Reilly Media)
  378.  http://www.cpan.org/       the Comprehensive Perl Archive
  379.  http://www.pm.org/         the Perl Mongers
  380.  
  381. =head1 DIAGNOSTICS
  382.  
  383. The C<use warnings> pragma (and the B<-w> switch) produces some 
  384. lovely diagnostics.
  385.  
  386. See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
  387. diagnostics> pragma automatically turns Perl's normally terse warnings
  388. and errors into these longer forms.
  389.  
  390. Compilation errors will tell you the line number of the error, with an
  391. indication of the next token or token type that was to be examined.
  392. (In a script passed to Perl via B<-e> switches, each
  393. B<-e> is counted as one line.)
  394.  
  395. Setuid scripts have additional constraints that can produce error
  396. messages such as "Insecure dependency".  See L<perlsec>.
  397.  
  398. Did we mention that you should definitely consider using the B<-w>
  399. switch?
  400.  
  401. =head1 BUGS
  402.  
  403. The B<-w> switch is not mandatory.
  404.  
  405. Perl is at the mercy of your machine's definitions of various
  406. operations such as type casting, atof(), and floating-point
  407. output with sprintf().
  408.  
  409. If your stdio requires a seek or eof between reads and writes on a
  410. particular stream, so does Perl.  (This doesn't apply to sysread()
  411. and syswrite().)
  412.  
  413. While none of the built-in data types have any arbitrary size limits
  414. (apart from memory size), there are still a few arbitrary limits:  a
  415. given variable name may not be longer than 251 characters.  Line numbers
  416. displayed by diagnostics are internally stored as short integers,
  417. so they are limited to a maximum of 65535 (higher numbers usually being
  418. affected by wraparound).
  419.  
  420. You may mail your bug reports (be sure to include full configuration
  421. information as output by the myconfig program in the perl source
  422. tree, or by C<perl -V>) to perlbug@perl.org .  If you've succeeded
  423. in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
  424. can be used to help mail in a bug report.
  425.  
  426. Perl actually stands for Pathologically Eclectic Rubbish Lister, but
  427. don't tell anyone I said that.
  428.  
  429. =head1 NOTES
  430.  
  431. The Perl motto is "There's more than one way to do it."  Divining
  432. how many more is left as an exercise to the reader.
  433.  
  434. The three principal virtues of a programmer are Laziness,
  435. Impatience, and Hubris.  See the Camel Book for why.
  436.  
  437.